package example.service;

import example.common.Result;
import example.dto.*;
import example.entity.Secondment;
import example.entity.SecondmentContentInfo;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

public interface ISecondmentService {
    Result addSecondment(AddSecondmentDTO addSecondmentDTO);

    Result deleteSecondment(Long secondmentId);

    Result listSecondmentByDepartmentId(GetSecListDTO getSecListDTO);

    void downloadSecondmentFile(Long secondmentId, HttpServletResponse response);

    ResponseEntity<byte[]> getResponseZipFile(Long secondmentId);

    ResponseEntity<byte[]> getTempZipFile(Long secondmentId);

    Result getZipName(Long secondmentId);

    Result getPdfName(Long secondmentId);

    Result lisSecondmentByDepartmentId(GetSecListDTO getSecListDTO);

    Result uploadToLevelOne(MultipartFile file, Long secondmentId);

    Result changeSecondmentState(Long secondmentId);

    Result updateSecondmentName(Secondment secondment);

    Result searchUser(SearchSecondmentDTO searchSecondmentDTO);

    Result confirmSecondment(Long id);

    Result changeConfirmState(SecondmentConfirmDTO secondmentConfirmDTO);

    Result getC(SecondmentContentInfo secondmentContentInfo);

    void downloadConfirm(Long secondmentId, HttpServletResponse response);

    Result getConfirmName(Long secondmentId);

    Result singleConfirmSecondment(MultipartFile file, Long secondmentId, Long id);

    Result alldepartConfirmSecondment(MultipartFile file, Long secondmentId);

    Result onedepartConfirmSecondment(MultipartFile file, Long secondmentId,Long departmentId);

    void export(ExportExcelDTO exportExcelDTO, HttpServletResponse response);
}
